// pages/sc/sc.js
const app=getApp();
Page({

  data: {
    result: "",                 // 结果文本
    resimg:"",                  //结果图片地址
    resulttop: "请上传车辆照片",
    img_url: "",                //上传图片地址
    isLoading: false,           //判断正在上传的中间变量
    result_status: 'none',
    picture: '../picture/shangchuanshipin.png',    //初始显示图片（可改）
      buttonLoad: "查看结果",

      // 以下数据含义同上，只用来显示四角照
      isLoading1: false,
      result_status1: 'none',
      img_url1: "",
      picture1: '',

      isLoading2: false,
      result_status2: 'none',
      img_url2: "",
      picture2: '',

      isLoading3: false,
      result_status3: 'none',
      img_url3: "",
      picture3: '',

      isLoading4: false,
      result_status4: 'none',
      img_url4: "",
    picture4: '',

    clickFlag:true //防重复点击
  },

  // 上传图片函数
  upload: function(e) {
    console.log("upload")
    let that = this
    wx.chooseImage({
      success: function(res) {
        let tmpFile = res.tempFilePaths[0]
        that.setData({
          img_url: tmpFile
        })
        that.setData({
          isLoading: true
        })
        wx.showToast({
          title: '加载中...',
          mask: true,
          icon: 'loading',
          duration: 10000
        }),
        wx.uploadFile({
          url: 'https://lamaric.goho.co/upload/', //app.ai_api.File.file
          filePath: tmpFile, //文件路径  这里是img文件
          name: 'file', //与后端适配，一般别动
          formData: {
            method: 'POST' //请求方式
          },
          success(res) {
            if (res.statusCode == 200) {
              var data = JSON.parse(res.data);
              console.log('OK')
              wx.showToast({
                title: '上传成功！',
              })
              that.setData({
                isLoading: false
              })
              // let data = JSON.parse(data.result)
              console.log(data)
              // 以下赋值
              that.setData({
                result: data.result,
                resimg: data.combine_url
              })
              if (data.result===null){
                var by=[{"part":"未检测到","type":"--","price":0}]
                getApp().globalData.resultfinally = by,
                getApp().globalData.resultimg = data.combine_url
              }else{
                getApp().globalData.resultfinally = data.result,
                getApp().globalData.resultimg = data.combine_url
              }
              that.setData({
                result_status: 'inline'
              })
              that.tapToRes()
            } else {
              console.log('上传失败')
              wx.showToast({
                title: '上传失败！',
                icon: 'none'
              })
            }
          }
        })

      },
    })
  },

  // 选择图片显示函数（不上传，用于四角照）
  upload1: function(e) {
 console.log("chooseVideo")
    this.setData({clickFlag: false})
 
    let that = this
    //1.拍摄视频或从手机相册中选择视频
    wx.chooseVideo({
      sourceType: ['album', 'camera'], // album 从相册选视频，camera 使用相机拍摄
      // maxDuration: 60, // 拍摄视频最长拍摄时间，单位秒。最长支持60秒
      camera: 'back',//默认拉起的是前置或者后置摄像头，默认back
      compressed: true,//是否压缩所选择的视频文件
      success: function(res){
        console.log(res)
        let tempFilePath = res.tempFilePath//选择定视频的临时文件路径（本地路径）
        let duration = res.duration //选定视频的时间长度
        let size = parseFloat(res.size/1024/1024).toFixed(1) //选定视频的数据量大小
        // let height = res.height //返回选定视频的高度
        // let width = res.width //返回选中视频的宽度
        that.data.duration = duration
        if(parseFloat(size) > 100){
          that.setData({
            clickFlag: true,
            duration: ''
          })
          let beyondSize = parseFloat(size) - 100
          wx.showToast({
            title: '上传的视频大小超限，超出'+beyondSize+'MB,请重新上传',
            //image: '',//自定义图标的本地路径，image的优先级高于icon
            icon:'none'
          })
        }else{
          that.setData({
            img_url1: tempFilePath,
            isLoading1: true
          })
        }
          console.log(that.data.img_url1)
      },
      fail: function() {
        // fail
      },
      complete: function() {
        // complete
      }
    })
  },

  eyedetect:function(e){
    let that = this
    wx.showLoading({
      title: '上传进度：0%',
      mask: true //是否显示透明蒙层，防止触摸穿透
    })
    console.log('显示用户名')
    console.log(app.globalData.userInfo)    
    const uploadTask = wx.uploadFile({
        url: 'http://127.0.0.1:8000/app/getVideo/',//开发者服务器地址
        filePath: that.data.img_url1,//要上传文件资源的路径（本地路径）
        name: 'file',//文件对应key,开发者在服务端可以通过这个 key 获取文件的二进制内容
        // header: {}, // 设置请求的 header
        formData: {
            'nickName': app.globalData.userInfo.nickName
        },
        success: function (res) {
            console.log("sc uploadFile", res)
            // success
            wx.hideLoading()
            if (res.statusCode == 200) {
                let jsondata = JSON.parse(res.data)

                wx.navigateTo({
                    url: '../result/result?jsondata=' + encodeURIComponent(JSON.stringify(res.data)),
                })

                wx.showToast({
                    title: '上传成功',
                    icon: 'success'
                })
            } else {
          that.setData({
            videoUrl: '',
            poster: '',
            duration: '',
            clickFlag:true
          })
          wx.showToast({
            title: '上传失败',
            icon: 'none'
          })
        }
       
      },
      fail: function() {
        // fail
        wx.hideLoading()
        this.setData({
          clickFlag:true
        })
        wx.showToast({
          title: '上传失败',
          icon: 'none'
        })
      }
    })
    //监听上传进度变化事件
    uploadTask.onProgressUpdate((res) =>{
      wx.showLoading({
        title: '上传进度：'+res.progress+'%',
          mask: true //是否显示透明蒙层，防止触摸穿透
      })
        console.log("上传进度", res.progress)
        console.log("已经上传的数据长度，单位 Bytes:", res.totalBytesSent)
        console.log("预期需要上传的数据总长度，单位 Bytes:", res.totalBytesExpectedToSend)
    })
  },

// 选择图片显示函数（不上传，用于四角照）
    upload2: function (e) {
        console.log("chooseVideo")
        this.setData({clickFlag: false})

        let that = this
        //1.拍摄视频或从手机相册中选择视频
        wx.chooseVideo({
            sourceType: ['album', 'camera'], // album 从相册选视频，camera 使用相机拍摄
            // maxDuration: 60, // 拍摄视频最长拍摄时间，单位秒。最长支持60秒
            camera: 'back',//默认拉起的是前置或者后置摄像头，默认back
            compressed: true,//是否压缩所选择的视频文件
            success: function (res) {
                console.log(res)
                let tempFilePath2 = res.tempFilePath//选择定视频的临时文件路径（本地路径）
                let duration = res.duration //选定视频的时间长度
                let size = parseFloat(res.size / 1024 / 1024).toFixed(1) //选定视频的数据量大小
                // let height = res.height //返回选定视频的高度
                // let width = res.width //返回选中视频的宽度
                that.data.duration = duration
                if (parseFloat(size) > 100) {
                    that.setData({
                        clickFlag: true,
                        duration: ''
                    })
                    let beyondSize = parseFloat(size) - 100
                    wx.showToast({
                        title: '上传的视频大小超限，超出' + beyondSize + 'MB,请重新上传',
                        //image: '',//自定义图标的本地路径，image的优先级高于icon
                        icon: 'none'
                    })
                } else {
                    that.setData({
                        img_url2: tempFilePath2,
                        isLoading2: true
                    })
                }
            },
            fail: function () {
                // fail
            },
            complete: function () {
                // complete
            }
        })
    },
    // 脸部姿态方向检测
    facePose: function (e) {
        let that = this
        wx.showLoading({
            title: '上传进度：0%',
            mask: true //是否显示透明蒙层，防止触摸穿透
        })
        const uploadTask = wx.uploadFile({
            url: 'http://127.0.0.1:8000/app/getFaceVideo/',//开发者服务器地址
            filePath: that.data.img_url2,//要上传文件资源的路径（本地路径）
            name: 'file',//文件对应key,开发者在服务端可以通过这个 key 获取文件的二进制内容
            // header: {}, // 设置请求的 header
            formData: {
              'nickName': app.globalData.userInfo.nickName
          },
            success: function (res) {
                console.log("uploadFile", res)
                // success
                wx.hideLoading()
                if (res.statusCode == 200) {
                    let jsondata = JSON.parse(res.data)//得到getFaceVideo返回的HttpResponse值
                    //跳转到reuslt界面并携带参数，参数值为getFacVideo()函数的返回值，其中videopath="./app/static/video/video_name.mp4"
                    wx.navigateTo({
                        url: '../result2/result2?jsondata=' + encodeURIComponent(JSON.stringify(res.data)),
                    })

                    wx.showToast({
                        title: '上传成功',
                        icon: 'success'
                    })
                } else {
                    that.setData({
                        videoUrl: '',
                        poster: '',
                        duration: '',
                        clickFlag: true
                    })
                    wx.showToast({
                        title: '上传失败',
                        icon: 'none'
                    })
                }

            },
            fail: function () {
                // fail
                wx.hideLoading()
                this.setData({
                    videoUrl: '',
                    poster: '',
                    duration: '',
                    clickFlag: true
                })
                wx.showToast({
                    title: '上传失败',
                    icon: 'none'
                })
            }
        })
        //监听上传进度变化事件
        uploadTask.onProgressUpdate((res) => {
            wx.showLoading({
                title: '上传进度：' + res.progress + '%',
                mask: true //是否显示透明蒙层，防止触摸穿透
            })
            console.log("上传进度", res.progress)
            console.log("已经上传的数据长度，单位 Bytes:", res.totalBytesSent)
            console.log("预期需要上传的数据总长度，单位 Bytes:", res.totalBytesExpectedToSend)
        })
    },
// 选择图片显示函数（不上传，用于四角照）
    upload3: function (e) {
        console.log("upload")
        let that = this
        wx.chooseImage({
            success: function (res) {
                // console.log(res)
                let tmpFile = res.tempFilePaths[0]
                that.setData({
                    img_url3: tmpFile
        })
        that.setData({
          isLoading3: true
        })

      },
    })
  },
// 选择图片显示函数（不上传，用于四角照）
upload4: function (e) {
  console.log("chooseVideo")
  this.setData({clickFlag: false})

  let that = this
  //1.拍摄视频或从手机相册中选择视频
  wx.chooseVideo({
    sourceType: ['album', 'camera'], // album 从相册选视频，camera 使用相机拍摄
    // maxDuration: 60, // 拍摄视频最长拍摄时间，单位秒。最长支持60秒
    camera: 'back',//默认拉起的是前置或者后置摄像头，默认back
    compressed: true,//是否压缩所选择的视频文件
    success: function(res){
      console.log(res)
      let tempFilePath = res.tempFilePath//选择定视频的临时文件路径（本地路径）
      let duration = res.duration //选定视频的时间长度
      let size = parseFloat(res.size/1024/1024).toFixed(1) //选定视频的数据量大小
      // let height = res.height //返回选定视频的高度
      // let width = res.width //返回选中视频的宽度
      that.data.duration = duration
      if(parseFloat(size) > 100){
        that.setData({
          clickFlag: true,
          duration: ''
        })
        let beyondSize = parseFloat(size) - 100
        wx.showToast({
          title: '上传的视频大小超限，超出'+beyondSize+'MB,请重新上传',
          //image: '',//自定义图标的本地路径，image的优先级高于icon
          icon:'none'
        })
      }else{
        that.setData({
          img_url4: tempFilePath,
          isLoading4: true
        })
      }
    },
    fail: function() {
      // fail
    },
    complete: function() {
      // complete
    }
  })
},
gazetracking:function(e){
  let that = this
  wx.showLoading({
    title: '上传进度：0%',
    mask: true //是否显示透明蒙层，防止触摸穿透
  })
  const uploadTask = wx.uploadFile({
    url: 'http://127.0.0.1:8000/app/GazeTrackVideo/',//开发者服务器地址
    filePath:that.data.img_url4,//要上传文件资源的路径（本地路径）
    name:'file',//文件对应key,开发者在服务端可以通过这个 key 获取文件的二进制内容
    // header: {}, // 设置请求的 header
    formData: {
      'nickName': app.globalData.userInfo.nickName
  },
    success: function(res){
      console.log("uploadFile",res)
      // success
      wx.hideLoading()
      if(res.statusCode == 200){
        let jsondata=JSON.parse(res.data)

        wx.navigateTo({
          url: '../result4/result4?jsondata='+encodeURIComponent(JSON.stringify(res.data)),
        })

        wx.showToast({
          title: '上传成功',
          icon: 'success'
        })
      }else{
        that.setData({
          videoUrl: '',
          poster: '',
          duration: '',
          clickFlag:true
        })
        wx.showToast({
          title: '上传失败',
          icon: 'none'
        })
      }
     
    },
    fail: function() {
      // fail
      wx.hideLoading()
      this.setData({
        videoUrl: '',
        poster: '',
        duration: '',
        clickFlag:true
      })
      wx.showToast({
        title: '上传失败',
        icon: 'none'
      })
    }
  })
  //监听上传进度变化事件
  uploadTask.onProgressUpdate((res) =>{
    wx.showLoading({
      title: '上传进度：'+res.progress+'%',
      mask: true //是否显示透明蒙层，防止触摸穿透
    })
    console.log("上传进度",res.progress)
    console.log("已经上传的数据长度，单位 Bytes:",res.totalBytesSent)
    console.log("预期需要上传的数据总长度，单位 Bytes:",res.totalBytesExpectedToSend)
  })
},

  // 页面跳转函数
  // 跳转结果界面
  tapToRes: function(e){
    wx.navigateTo({
      url: '../result/result',
    })
  },
// 跳转函数
  // 跳转到main界面(只能用switchTab)
  taptomain: function (e) {
    wx:wx.switchTab({
      url: '../main/main',
      success: function(res) {},
      fail: function(res) {},
      complete: function(res) {},
    })
  }
})